Introduction to software Engineering and software process model Software Requirements Engineering and Analysis Estimation and Scheduling Design Engineering Risks and Configuration Management Software Testing

Introduction

Modelling Requirement Engineering

Establishing the Groundwork

Identifying Stakeholders

Recognizing Multiple viewpoint

Working towards collaboration

Ashking the first questions

Eliciting Requirement

Collaborative Requirement Gathering

Usage scenarios

Elicitation Work Product

Developing Use Cases

Building the requirements model

Elements of the Requirements Model

Negotiating requirements

Validating Requirement

Modeling Requirements Engineering in a Simple and Attractive Way:


Requirements Engineering is like drawing a blueprint before building a house. Just as architects plan every detail of a house before construction begins, software developers need to understand and plan every aspect of a software system before coding. Let's explore the key concepts of Requirements Engineering through a simple example.


1. Imagine Building a Social Media App:


Let's say we want to build a social media app. Before we start coding, we need a clear plan of what features the app should have, how users will interact with it, and what problems it will solve. This is where Requirements Engineering comes in.


2. Inception - Defining the Problem:


Scenario: You've identified a need for a new social media app to connect people with shared interests.

Inception Task: Define the basic understanding of the problem. Who needs the app? Why do they need it? What are the initial ideas for features?


3. Elicitation - Gathering Requirements:


Scenario: You talk to potential users and stakeholders to understand their needs.

Elicitation Task: Conduct interviews or surveys to gather information. Users express the need for features like creating profiles, sharing posts, and liking/commenting on content.


4. Elaboration - Refining Requirements:


Scenario: You take the gathered information and refine it to create a detailed plan.

Elaboration Task: Create user scenarios – detailed stories of how users will interact with the app. For instance, a user scenario could be someone creating a new post and receiving likes and comments.


5. Negotiation - Resolving Conflicts:


Scenario: Different stakeholders have conflicting ideas about what features are most important.

Negotiation Task: Prioritize features by discussing their importance and impact. For example, users might want a chat feature, but stakeholders emphasize the importance of a secure login system first.


6. Specification - Documenting the Plan:


Scenario: You need to communicate the refined plan to everyone involved in the project.

Specification Task: Create a document detailing each feature, its functionality, and how it will look. For example, specify that the app will have a news feed, user profiles, and a secure login system.


7. Validation - Ensuring Accuracy:


Scenario: Stakeholders review the specification document to ensure it accurately represents their needs.

Validation Task: Conduct a review meeting where stakeholders confirm that the specified features align with their expectations and needs. Adjust the document based on their feedback.


8. Requirements Management - Adapting to Changes:


Scenario: As the project progresses, users might request new features or changes.

Management Task: Use a version control system to manage updates to the requirements document. Track changes and ensure everyone is working with the latest information.


9. Conclusion - Building with Confidence:


By following this Requirements Engineering process, you have a clear plan for building your social media app. The detailed specifications serve as a roadmap for development, reducing misunderstandings and ensuring that everyone involved is on the same page.

In essence, Requirements Engineering is the architectural phase of software development, ensuring that the foundation is solid before construction begins. It's the key to building software that not only works but also solves real problems for users. Just like a well-planned house, a well-planned software system stands strong and serves its purpose effectively.

Software


Software refers to the set of programs, data, and instructions that enable computers to perform specific tasks or functions. It encompasses applications, operating systems, and utilities designed to fulfill user needs, enhancing productivity, communication, entertainment, and virtually all aspects of modern life through computational processes and data manipulation.


Software Engineering


Software Engineering is the disciplined application of principles, methods, and tools to develop, test, deploy, and maintain high-quality software systems. It involves systematic approaches to problem-solving, project management, and teamwork, aiming to meet user needs efficiently while adhering to standards and best practices throughout the software development lifecycle.